package Game
{
	import flash.display.Sprite;
	
	public class Enemy extends Sprite
	{
		private var _Xspeed:Number=0;
		private var _Yspeed:Number=0; 
		private var _vis:enemy=new enemy();//графика кирпича
		private var hits:uint=2;//сколько здоровья у кирпича.типа если было два столкновения то кирпич надо уничтожить
		private var _sprot:Number=0;
		
		private static var m1:int=ControlModul.heroMass;
		private static var m2:int=ControlModul.blockMass;		
		
		public function Enemy()
		{
			super();
			addChild(_vis);
		}
		public function imp():uint{//физичное столкновение объектов смотри вики
			
			var vy1:Number=ControlModul.speed;//скорость героя по Y координате до взаимодействия
			var vx1:Number=ControlModul.speedX;//скорость героя по X координате координате до взаимодействия
			var vy2:Number=_Yspeed;//скорость кирпича по оси Y координате до взаимодействия
			var vx2:Number=_Xspeed;//скорость кирпича по оси X координате до взаимодействия
			
			if(ControlModul._speed>5){
				ControlModul._speed=(vy1*(m1-m2)+2*m2*vy2)/(m1+m2);
				ControlModul._speedX=(vx1*(m1-m2)+2*m2*vx2)/(m1+m2);
			
				_Xspeed=(vx2*(m2-m1)+2*m1*vx1)/(m1+m2);
				_Yspeed=(vy2*(m2-m1)+2*m1*vy1)/(m1+m2)
			}else{
				ControlModul._speed=(m1*vy1+m2*vy2)/(m1+m2);
				ControlModul._speedX=(m1*vx1+m2*vx2)/(m1+m2);
				
				_Xspeed=ControlModul._speedX; 
				_Yspeed=ControlModul._speed;
			}
			
			_sprot=-(ControlModul.heroX-this.x)*vy1*0.02;
			
			
			--hits;//возвращаем кол-во столкновений
			return 1;
		}
		public function push():void{
			var vy2:Number=_Yspeed;//скорость кирпича по оси Y координате до взаимодействия
			var vx2:Number=_Xspeed;//скорость кирпича по оси X координате до взаимодействия
			var vy1:Number=ControlModul.maxSpeed*Math.sin(-Math.atan2(this.y-ControlModul.heroY,this.x-ControlModul.heroX));//скорость героя по Y координате до взаимодействия
			var vx1:Number=ControlModul.maxSpeed*Math.cos(Math.atan2(this.y-ControlModul.heroY,this.x-ControlModul.heroX));//скорость героя по X координате координате до взаимодействия
			this.x+=this.x-ControlModul.heroX;
			this.y+=this.y-ControlModul.heroY;
			_Xspeed=(vx2*(m2-m1)+2*m1*vx1)/(m1+m2);
			_Yspeed=(vy2*(m2-m1)+2*m1*vy1)/(m1+m2);
		}
		public function impEnemy(obj:Enemy):uint{
			
			var xs:Number=obj._Xspeed;
			var ys:Number=obj._Yspeed;
			obj._Xspeed=this._Xspeed;
			obj._Yspeed=this._Yspeed;
			this._Xspeed=xs;
			this._Yspeed=ys;
			--hits;//возвращаем кол-во столкновений
			_sprot=-(obj.x-this.x)*obj._Yspeed*0.02;
			
			return 1;
		}
		public function move():void {
			this._Yspeed*=0.97;//пока что подобрали такую силу трения. Потом будет изящней
			this._Xspeed*=0.97;
			this.rotation+=_sprot;
			_sprot*=0.97;
		}
		public function get Xspeed():int{
			move();
			return _Xspeed;
		}
		public function get Yspeed():int{
			return _Yspeed;
		}
	}
}